package es.ucm.fdi.isbc.marcado.vista;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SpringLayout;

import es.ucm.fdi.isbc.marcado.Control;

public class PanelConsultar extends JPanel {

	private static final long serialVersionUID = 1L;

	public PanelConsultar() {
		super();
		init();
	}

	private void init() {
		setLayout(new SpringLayout());
		
		final String textoDefecto = "Patrones: Escenas de #Pel\u00edcula, " +
									"Fotos de #Actor,"+
									"Fotos de #Actor en #Pel\u00edcula y " +
									"Fotos de tipo #Descripcion"+
									"Fotos en las que aparezca #Elemento";
		final JTextFieldFoco texto = new JTextFieldFoco(textoDefecto);
		texto.setDisabledTextColor(Color.WHITE);
		texto.setBackground(Color.GRAY);
		texto.setMargin(new Insets(0, 15, 0, 0));
		texto.setEnabled(false);
		
		JRadioButton radio0 = new JRadioButton("Actores que hayan participado en " +
												"m\u00e1s de dos pel\u00edculas", true);
		radio0.setHorizontalAlignment(JRadioButton.LEFT);
		radio0.addActionListener(new ActionListener() {
            public void actionPerformed (ActionEvent e) {
                Control.tipoConsulta = 0;
                texto.setBackground(Color.GRAY);
                texto.setText(textoDefecto);
                texto.setEnabled(false);
            }
        });
		
		JRadioButton radio1 = new JRadioButton("Parejas de actores que no han aparecido " +
												"juntos en ninguna pel\u00edcula pero tienen " +
												"compa\u00f1eros comunes", false);
		radio1.setHorizontalAlignment(JRadioButton.LEFT);
		radio1.addActionListener(new ActionListener() {
            public void actionPerformed (ActionEvent e) {
                Control.tipoConsulta = 1;
                texto.setBackground(Color.GRAY);
                texto.setText(textoDefecto);
                texto.setEnabled(false);
            }
        });
		
		JRadioButton radio2 = new JRadioButton("Personajes que aparecen en alguna serie " +
												"o pel\u00edcula espa\u00f1ola", false);
		radio2.setHorizontalAlignment(JRadioButton.LEFT);
		radio2.addActionListener(new ActionListener() {
            public void actionPerformed (ActionEvent e) {
                Control.tipoConsulta = 2;
                texto.setBackground(Color.GRAY);
                texto.setText(textoDefecto);
                texto.setEnabled(false);
            }
        });

		JRadioButton radio3 = new JRadioButton("Consulta en lenguaje natural:\n", false);
		radio3.setHorizontalAlignment(JRadioButton.LEFT);
		radio3.addActionListener(new ActionListener() {
            public void actionPerformed (ActionEvent e) {
                Control.tipoConsulta = 3;
				texto.setBackground(Color.WHITE);
				texto.requestFocusInWindow();
				texto.setEnabled(true);
            }
        });
		
		
		
		JButton boton = new JButton("Consultar");
		boton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		boton.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				if (Control.tipoConsulta == 3) {
					Control.consultaLN = texto.getText().trim();
				} else {
					Control.consultaLN = null;
				}
				Control.consultar();
			}
		});
		
		ButtonGroup grupo = new ButtonGroup();
		grupo.add(radio0);
		grupo.add(radio1);
		grupo.add(radio2);
		grupo.add(radio3);
		
		add(new JLabel("Elija un tipo de consulta:"));
		add(radio0);
		add(radio1);
		add(radio2);
		add(radio3);
		add(texto);
		add(boton);
		
		SpringUtilities.makeGrid(this, 7, 1, 5, 5, 5, 5); //filas,cols,X,Y,padX,padY
	}
}
